package com.maybach.workflow.common.query;


import com.maybach.util.query.support.BaseQuery;
import com.maybach.util.query.support.BaseCriteria;
import org.apache.commons.lang.builder.ReflectionToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;

import java.io.Serializable;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class FlowApplyQuery extends BaseQuery implements Serializable {
    private static final long serialVersionUID = 1L;

    public FlowApplyQuery() {
        super();
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        super.oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    /**
     * This class corresponds to the database table wf_flow_apply
     */
    protected abstract static class GeneratedCriteria extends BaseCriteria {

        protected GeneratedCriteria() {
            super();
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(Long value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(Long value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(Long value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(Long value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(Long value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(Long value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<Long> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<Long> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(Long value1, Long value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(Long value1, Long value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andGmtCreateIsNull() {
            addCriterion("gmt_create is null");
            return (Criteria) this;
        }

        public Criteria andGmtCreateIsNotNull() {
            addCriterion("gmt_create is not null");
            return (Criteria) this;
        }

        public Criteria andGmtCreateEqualTo(Date value) {
            addCriterion("gmt_create =", value, "gmtCreate");
            return (Criteria) this;
        }

        public Criteria andGmtCreateNotEqualTo(Date value) {
            addCriterion("gmt_create <>", value, "gmtCreate");
            return (Criteria) this;
        }

        public Criteria andGmtCreateGreaterThan(Date value) {
            addCriterion("gmt_create >", value, "gmtCreate");
            return (Criteria) this;
        }

        public Criteria andGmtCreateGreaterThanOrEqualTo(Date value) {
            addCriterion("gmt_create >=", value, "gmtCreate");
            return (Criteria) this;
        }

        public Criteria andGmtCreateLessThan(Date value) {
            addCriterion("gmt_create <", value, "gmtCreate");
            return (Criteria) this;
        }

        public Criteria andGmtCreateLessThanOrEqualTo(Date value) {
            addCriterion("gmt_create <=", value, "gmtCreate");
            return (Criteria) this;
        }

        public Criteria andGmtCreateIn(List<Date> values) {
            addCriterion("gmt_create in", values, "gmtCreate");
            return (Criteria) this;
        }

        public Criteria andGmtCreateNotIn(List<Date> values) {
            addCriterion("gmt_create not in", values, "gmtCreate");
            return (Criteria) this;
        }

        public Criteria andGmtCreateBetween(Date value1, Date value2) {
            addCriterion("gmt_create between", value1, value2, "gmtCreate");
            return (Criteria) this;
        }

        public Criteria andGmtCreateNotBetween(Date value1, Date value2) {
            addCriterion("gmt_create not between", value1, value2, "gmtCreate");
            return (Criteria) this;
        }

        public Criteria andGmtModifiedIsNull() {
            addCriterion("gmt_modified is null");
            return (Criteria) this;
        }

        public Criteria andGmtModifiedIsNotNull() {
            addCriterion("gmt_modified is not null");
            return (Criteria) this;
        }

        public Criteria andGmtModifiedEqualTo(Date value) {
            addCriterion("gmt_modified =", value, "gmtModified");
            return (Criteria) this;
        }

        public Criteria andGmtModifiedNotEqualTo(Date value) {
            addCriterion("gmt_modified <>", value, "gmtModified");
            return (Criteria) this;
        }

        public Criteria andGmtModifiedGreaterThan(Date value) {
            addCriterion("gmt_modified >", value, "gmtModified");
            return (Criteria) this;
        }

        public Criteria andGmtModifiedGreaterThanOrEqualTo(Date value) {
            addCriterion("gmt_modified >=", value, "gmtModified");
            return (Criteria) this;
        }

        public Criteria andGmtModifiedLessThan(Date value) {
            addCriterion("gmt_modified <", value, "gmtModified");
            return (Criteria) this;
        }

        public Criteria andGmtModifiedLessThanOrEqualTo(Date value) {
            addCriterion("gmt_modified <=", value, "gmtModified");
            return (Criteria) this;
        }

        public Criteria andGmtModifiedIn(List<Date> values) {
            addCriterion("gmt_modified in", values, "gmtModified");
            return (Criteria) this;
        }

        public Criteria andGmtModifiedNotIn(List<Date> values) {
            addCriterion("gmt_modified not in", values, "gmtModified");
            return (Criteria) this;
        }

        public Criteria andGmtModifiedBetween(Date value1, Date value2) {
            addCriterion("gmt_modified between", value1, value2, "gmtModified");
            return (Criteria) this;
        }

        public Criteria andGmtModifiedNotBetween(Date value1, Date value2) {
            addCriterion("gmt_modified not between", value1, value2, "gmtModified");
            return (Criteria) this;
        }

        public Criteria andAttachBizTypeIsNull() {
            addCriterion("attach_biz_type is null");
            return (Criteria) this;
        }

        public Criteria andAttachBizTypeIsNotNull() {
            addCriterion("attach_biz_type is not null");
            return (Criteria) this;
        }

        public Criteria andAttachBizTypeEqualTo(String value) {
            addCriterion("attach_biz_type =", value, "attachBizType");
            return (Criteria) this;
        }

        public Criteria andAttachBizTypeNotEqualTo(String value) {
            addCriterion("attach_biz_type <>", value, "attachBizType");
            return (Criteria) this;
        }

        public Criteria andAttachBizTypeGreaterThan(String value) {
            addCriterion("attach_biz_type >", value, "attachBizType");
            return (Criteria) this;
        }

        public Criteria andAttachBizTypeGreaterThanOrEqualTo(String value) {
            addCriterion("attach_biz_type >=", value, "attachBizType");
            return (Criteria) this;
        }

        public Criteria andAttachBizTypeLessThan(String value) {
            addCriterion("attach_biz_type <", value, "attachBizType");
            return (Criteria) this;
        }

        public Criteria andAttachBizTypeLessThanOrEqualTo(String value) {
            addCriterion("attach_biz_type <=", value, "attachBizType");
            return (Criteria) this;
        }

        public Criteria andAttachBizTypeLike(String value) {
            addCriterion("attach_biz_type like", value, "attachBizType");
            return (Criteria) this;
        }

        public Criteria andAttachBizTypeNotLike(String value) {
            addCriterion("attach_biz_type not like", value, "attachBizType");
            return (Criteria) this;
        }

        public Criteria andAttachBizTypeIn(List<String> values) {
            addCriterion("attach_biz_type in", values, "attachBizType");
            return (Criteria) this;
        }

        public Criteria andAttachBizTypeNotIn(List<String> values) {
            addCriterion("attach_biz_type not in", values, "attachBizType");
            return (Criteria) this;
        }

        public Criteria andAttachBizTypeBetween(String value1, String value2) {
            addCriterion("attach_biz_type between", value1, value2, "attachBizType");
            return (Criteria) this;
        }

        public Criteria andAttachBizTypeNotBetween(String value1, String value2) {
            addCriterion("attach_biz_type not between", value1, value2, "attachBizType");
            return (Criteria) this;
        }

        public Criteria andAttachBizIdIsNull() {
            addCriterion("attach_biz_id is null");
            return (Criteria) this;
        }

        public Criteria andAttachBizIdIsNotNull() {
            addCriterion("attach_biz_id is not null");
            return (Criteria) this;
        }

        public Criteria andAttachBizIdEqualTo(Long value) {
            addCriterion("attach_biz_id =", value, "attachBizId");
            return (Criteria) this;
        }

        public Criteria andAttachBizIdNotEqualTo(Long value) {
            addCriterion("attach_biz_id <>", value, "attachBizId");
            return (Criteria) this;
        }

        public Criteria andAttachBizIdGreaterThan(Long value) {
            addCriterion("attach_biz_id >", value, "attachBizId");
            return (Criteria) this;
        }

        public Criteria andAttachBizIdGreaterThanOrEqualTo(Long value) {
            addCriterion("attach_biz_id >=", value, "attachBizId");
            return (Criteria) this;
        }

        public Criteria andAttachBizIdLessThan(Long value) {
            addCriterion("attach_biz_id <", value, "attachBizId");
            return (Criteria) this;
        }

        public Criteria andAttachBizIdLessThanOrEqualTo(Long value) {
            addCriterion("attach_biz_id <=", value, "attachBizId");
            return (Criteria) this;
        }

        public Criteria andAttachBizIdLike(Long value) {
            addCriterion("attach_biz_id like", value, "attachBizId");
            return (Criteria) this;
        }

        public Criteria andAttachBizIdNotLike(Long value) {
            addCriterion("attach_biz_id not like", value, "attachBizId");
            return (Criteria) this;
        }

        public Criteria andAttachBizIdIn(List<Long> values) {
            addCriterion("attach_biz_id in", values, "attachBizId");
            return (Criteria) this;
        }

        public Criteria andAttachBizIdNotIn(List<Long> values) {
            addCriterion("attach_biz_id not in", values, "attachBizId");
            return (Criteria) this;
        }

        public Criteria andAttachBizIdBetween(Long value1, Long value2) {
            addCriterion("attach_biz_id between", value1, value2, "attachBizId");
            return (Criteria) this;
        }

        public Criteria andAttachBizIdNotBetween(Long value1, Long value2) {
            addCriterion("attach_biz_id not between", value1, value2, "attachBizId");
            return (Criteria) this;
        }

        public Criteria andFlowBizTypeIsNull() {
            addCriterion("flow_biz_type is null");
            return (Criteria) this;
        }

        public Criteria andFlowBizTypeIsNotNull() {
            addCriterion("flow_biz_type is not null");
            return (Criteria) this;
        }

        public Criteria andFlowBizTypeEqualTo(String value) {
            addCriterion("flow_biz_type =", value, "flowBizType");
            return (Criteria) this;
        }

        public Criteria andFlowBizTypeNotEqualTo(String value) {
            addCriterion("flow_biz_type <>", value, "flowBizType");
            return (Criteria) this;
        }

        public Criteria andFlowBizTypeGreaterThan(String value) {
            addCriterion("flow_biz_type >", value, "flowBizType");
            return (Criteria) this;
        }

        public Criteria andFlowBizTypeGreaterThanOrEqualTo(String value) {
            addCriterion("flow_biz_type >=", value, "flowBizType");
            return (Criteria) this;
        }

        public Criteria andFlowBizTypeLessThan(String value) {
            addCriterion("flow_biz_type <", value, "flowBizType");
            return (Criteria) this;
        }

        public Criteria andFlowBizTypeLessThanOrEqualTo(String value) {
            addCriterion("flow_biz_type <=", value, "flowBizType");
            return (Criteria) this;
        }

        public Criteria andFlowBizTypeLike(String value) {
            addCriterion("flow_biz_type like", value, "flowBizType");
            return (Criteria) this;
        }

        public Criteria andFlowBizTypeNotLike(String value) {
            addCriterion("flow_biz_type not like", value, "flowBizType");
            return (Criteria) this;
        }

        public Criteria andFlowBizTypeIn(List<String> values) {
            addCriterion("flow_biz_type in", values, "flowBizType");
            return (Criteria) this;
        }

        public Criteria andFlowBizTypeNotIn(List<String> values) {
            addCriterion("flow_biz_type not in", values, "flowBizType");
            return (Criteria) this;
        }

        public Criteria andFlowBizTypeBetween(String value1, String value2) {
            addCriterion("flow_biz_type between", value1, value2, "flowBizType");
            return (Criteria) this;
        }

        public Criteria andFlowBizTypeNotBetween(String value1, String value2) {
            addCriterion("flow_biz_type not between", value1, value2, "flowBizType");
            return (Criteria) this;
        }

        public Criteria andContentIsNull() {
            addCriterion("content is null");
            return (Criteria) this;
        }

        public Criteria andContentIsNotNull() {
            addCriterion("content is not null");
            return (Criteria) this;
        }

        public Criteria andContentEqualTo(String value) {
            addCriterion("content =", value, "content");
            return (Criteria) this;
        }

        public Criteria andContentNotEqualTo(String value) {
            addCriterion("content <>", value, "content");
            return (Criteria) this;
        }

        public Criteria andContentGreaterThan(String value) {
            addCriterion("content >", value, "content");
            return (Criteria) this;
        }

        public Criteria andContentGreaterThanOrEqualTo(String value) {
            addCriterion("content >=", value, "content");
            return (Criteria) this;
        }

        public Criteria andContentLessThan(String value) {
            addCriterion("content <", value, "content");
            return (Criteria) this;
        }

        public Criteria andContentLessThanOrEqualTo(String value) {
            addCriterion("content <=", value, "content");
            return (Criteria) this;
        }

        public Criteria andContentLike(String value) {
            addCriterion("content like", value, "content");
            return (Criteria) this;
        }

        public Criteria andContentNotLike(String value) {
            addCriterion("content not like", value, "content");
            return (Criteria) this;
        }

        public Criteria andContentIn(List<String> values) {
            addCriterion("content in", values, "content");
            return (Criteria) this;
        }

        public Criteria andContentNotIn(List<String> values) {
            addCriterion("content not in", values, "content");
            return (Criteria) this;
        }

        public Criteria andContentBetween(String value1, String value2) {
            addCriterion("content between", value1, value2, "content");
            return (Criteria) this;
        }

        public Criteria andContentNotBetween(String value1, String value2) {
            addCriterion("content not between", value1, value2, "content");
            return (Criteria) this;
        }

        public Criteria andClazzIsNull() {
            addCriterion("clazz is null");
            return (Criteria) this;
        }

        public Criteria andClazzIsNotNull() {
            addCriterion("clazz is not null");
            return (Criteria) this;
        }

        public Criteria andClazzEqualTo(String value) {
            addCriterion("clazz =", value, "clazz");
            return (Criteria) this;
        }

        public Criteria andClazzNotEqualTo(String value) {
            addCriterion("clazz <>", value, "clazz");
            return (Criteria) this;
        }

        public Criteria andClazzGreaterThan(String value) {
            addCriterion("clazz >", value, "clazz");
            return (Criteria) this;
        }

        public Criteria andClazzGreaterThanOrEqualTo(String value) {
            addCriterion("clazz >=", value, "clazz");
            return (Criteria) this;
        }

        public Criteria andClazzLessThan(String value) {
            addCriterion("clazz <", value, "clazz");
            return (Criteria) this;
        }

        public Criteria andClazzLessThanOrEqualTo(String value) {
            addCriterion("clazz <=", value, "clazz");
            return (Criteria) this;
        }

        public Criteria andClazzLike(String value) {
            addCriterion("clazz like", value, "clazz");
            return (Criteria) this;
        }

        public Criteria andClazzNotLike(String value) {
            addCriterion("clazz not like", value, "clazz");
            return (Criteria) this;
        }

        public Criteria andClazzIn(List<String> values) {
            addCriterion("clazz in", values, "clazz");
            return (Criteria) this;
        }

        public Criteria andClazzNotIn(List<String> values) {
            addCriterion("clazz not in", values, "clazz");
            return (Criteria) this;
        }

        public Criteria andClazzBetween(String value1, String value2) {
            addCriterion("clazz between", value1, value2, "clazz");
            return (Criteria) this;
        }

        public Criteria andClazzNotBetween(String value1, String value2) {
            addCriterion("clazz not between", value1, value2, "clazz");
            return (Criteria) this;
        }

        public Criteria andCreatorIsNull() {
            addCriterion("creator is null");
            return (Criteria) this;
        }

        public Criteria andCreatorIsNotNull() {
            addCriterion("creator is not null");
            return (Criteria) this;
        }

        public Criteria andCreatorEqualTo(Long value) {
            addCriterion("creator =", value, "creator");
            return (Criteria) this;
        }

        public Criteria andCreatorNotEqualTo(Long value) {
            addCriterion("creator <>", value, "creator");
            return (Criteria) this;
        }

        public Criteria andCreatorGreaterThan(Long value) {
            addCriterion("creator >", value, "creator");
            return (Criteria) this;
        }

        public Criteria andCreatorGreaterThanOrEqualTo(Long value) {
            addCriterion("creator >=", value, "creator");
            return (Criteria) this;
        }

        public Criteria andCreatorLessThan(Long value) {
            addCriterion("creator <", value, "creator");
            return (Criteria) this;
        }

        public Criteria andCreatorLessThanOrEqualTo(Long value) {
            addCriterion("creator <=", value, "creator");
            return (Criteria) this;
        }

        public Criteria andCreatorLike(Long value) {
            addCriterion("creator like", value, "creator");
            return (Criteria) this;
        }

        public Criteria andCreatorNotLike(Long value) {
            addCriterion("creator not like", value, "creator");
            return (Criteria) this;
        }

        public Criteria andCreatorIn(List<Long> values) {
            addCriterion("creator in", values, "creator");
            return (Criteria) this;
        }

        public Criteria andCreatorNotIn(List<Long> values) {
            addCriterion("creator not in", values, "creator");
            return (Criteria) this;
        }

        public Criteria andCreatorBetween(Long value1, Long value2) {
            addCriterion("creator between", value1, value2, "creator");
            return (Criteria) this;
        }

        public Criteria andCreatorNotBetween(Long value1, Long value2) {
            addCriterion("creator not between", value1, value2, "creator");
            return (Criteria) this;
        }

        public Criteria andStateIsNull() {
            addCriterion("state is null");
            return (Criteria) this;
        }

        public Criteria andStateIsNotNull() {
            addCriterion("state is not null");
            return (Criteria) this;
        }

        public Criteria andStateEqualTo(Integer value) {
            addCriterion("state =", value, "state");
            return (Criteria) this;
        }

        public Criteria andStateNotEqualTo(Integer value) {
            addCriterion("state <>", value, "state");
            return (Criteria) this;
        }

        public Criteria andStateGreaterThan(Integer value) {
            addCriterion("state >", value, "state");
            return (Criteria) this;
        }

        public Criteria andStateGreaterThanOrEqualTo(Integer value) {
            addCriterion("state >=", value, "state");
            return (Criteria) this;
        }

        public Criteria andStateLessThan(Integer value) {
            addCriterion("state <", value, "state");
            return (Criteria) this;
        }

        public Criteria andStateLessThanOrEqualTo(Integer value) {
            addCriterion("state <=", value, "state");
            return (Criteria) this;
        }

        public Criteria andStateLike(Integer value) {
            addCriterion("state like", value, "state");
            return (Criteria) this;
        }

        public Criteria andStateNotLike(Integer value) {
            addCriterion("state not like", value, "state");
            return (Criteria) this;
        }

        public Criteria andStateIn(List<Integer> values) {
            addCriterion("state in", values, "state");
            return (Criteria) this;
        }

        public Criteria andStateNotIn(List<Integer> values) {
            addCriterion("state not in", values, "state");
            return (Criteria) this;
        }

        public Criteria andStateBetween(Integer value1, Integer value2) {
            addCriterion("state between", value1, value2, "state");
            return (Criteria) this;
        }

        public Criteria andStateNotBetween(Integer value1, Integer value2) {
            addCriterion("state not between", value1, value2, "state");
            return (Criteria) this;
        }

        public Criteria andAttributesIsNull() {
            addCriterion("attributes is null");
            return (Criteria) this;
        }

        public Criteria andAttributesIsNotNull() {
            addCriterion("attributes is not null");
            return (Criteria) this;
        }

        public Criteria andAttributesEqualTo(String value) {
            addCriterion("attributes =", value, "attributes");
            return (Criteria) this;
        }

        public Criteria andAttributesNotEqualTo(String value) {
            addCriterion("attributes <>", value, "attributes");
            return (Criteria) this;
        }

        public Criteria andAttributesGreaterThan(String value) {
            addCriterion("attributes >", value, "attributes");
            return (Criteria) this;
        }

        public Criteria andAttributesGreaterThanOrEqualTo(String value) {
            addCriterion("attributes >=", value, "attributes");
            return (Criteria) this;
        }

        public Criteria andAttributesLessThan(String value) {
            addCriterion("attributes <", value, "attributes");
            return (Criteria) this;
        }

        public Criteria andAttributesLessThanOrEqualTo(String value) {
            addCriterion("attributes <=", value, "attributes");
            return (Criteria) this;
        }

        public Criteria andAttributesLike(String value) {
            addCriterion("attributes like", value, "attributes");
            return (Criteria) this;
        }

        public Criteria andAttributesNotLike(String value) {
            addCriterion("attributes not like", value, "attributes");
            return (Criteria) this;
        }

        public Criteria andAttributesIn(List<String> values) {
            addCriterion("attributes in", values, "attributes");
            return (Criteria) this;
        }

        public Criteria andAttributesNotIn(List<String> values) {
            addCriterion("attributes not in", values, "attributes");
            return (Criteria) this;
        }

        public Criteria andAttributesBetween(String value1, String value2) {
            addCriterion("attributes between", value1, value2, "attributes");
            return (Criteria) this;
        }

        public Criteria andAttributesNotBetween(String value1, String value2) {
            addCriterion("attributes not between", value1, value2, "attributes");
            return (Criteria) this;
        }

    }

    /**
     * This class corresponds to the database table wf_flow_apply
    */
    public  static class Criteria extends GeneratedCriteria{
        protected Criteria() {
            super();
        }
    }



    @Override
    public String toString(){
        return ReflectionToStringBuilder.toString(this, ToStringStyle.DEFAULT_STYLE);
    }
}